define(function (require, exports, module) {
    var myPub = require('./public');
    var oWrap = $('.js_wrap');
    var oGlobalSubmit = $('.js_globalSubmit');      // 保存按钮
    var oGlobalTxt = $('.js_globalTxt');            // 输入框
    var oidtxt = $('.js_txt');                      // 保存后身份证号的内容
    var oidIput = $('.js_iDinput');                 // 输入身份证内容
    var osaveId = $('.js_savedId');                 // 保存后身份证号内容
    var name = $('input[name="shipName"]').val();   //身份证名字，收货人姓名
    var oIdNo = $("input[name='idCardNo']");        //身份证号码提交

    var oIDCard = $('.js_iDCard');                  // 身份认证框
    var oGlobalTip = $('.js_iDCard_globalTip');     // 提示内容
    var oGlobal_chioce = $('.js_global_chioce');    // 全球购协议

    var oPayment = $('.js_btnPay');                 // 去付款按钮
    var oGlobalchange = $('.js_globalchange');      // 修改验证框里边内容
    var oClearBtn = $('.js_clearBtn');              // 清空输入框内容
    var obuyknowDetail = $('.js_buykonw_detail');   // 购买须知按钮
    var oPhotoBox  = $('.js_photoBox');             // 检测是否上传图片
    var oActiveCheckBox = $('.js_activeCheckBox');  // 红色单选框的是否选中状态
    var oIdExplain = $('.js_IdExplain');            // 上传身份证图片须知

    var Testing = false;                    // 校验按钮是否可点击
    var offTap = true;                      // 防止多次点击
    var moreTapOffTime = null;              // 多次点击定时器
    var maxLength = 18;                     // 输入框内最大长度
    var IDCardImg ="";                      //身份证照片地址
    var oPhotoListLi = $('.js_photoList');
    var oNoShowImg = $('.js_noShowImg');
    var iszhiyou=$("input[name='iszhiyou']").val();
    var oIdCardNo = idCardNo;                           // 身份证号码
    var oFirontImage = firontImage;                     // 身份证正面照路径
    var oBackImage= backImage;                          // 身份证反面照路径
    var oRightImg = $('.js_rightImg');                  // 身份证图片删除按钮
    var oView = $('.js_view');                          // 显示身份证区域
    var oUpLoadTip = $('.js_upLoadTip');                // 上传身份证图片提示区域
    // var oIdCardInput = $('#idCardNoHid');               // 身份证号码上传到后台的输入框
    var oPreview = $('.js_preview');                    // 身份证预览
    var oBCIdentifyBtn = $('.js_BCClearBtn');           // 去完成按钮
    var isBinding = '';                                 // 是否绑定

    // BC清关只能立即购买进入的确认订单页面才会有
    if(oBCIdentifyBtn &&　oBCIdentifyBtn.length > 0){
        isBinding = binding
    }

    // 点击去完成按钮
    oBCIdentifyBtn.on('click',function (object) {
        if(isBinding && isBinding == "true"){
            myPub.TipLayerEnd('您还没有绑定手机号码，请绑定','no',function () {
                if(typeof backHref != "undefined"){
                    window.location.href = "/h/login/bindMobile?backHref=" + backHref;
                }else {
                    window.location.href = "/h/login/bindMobile";
                }
            },3)
        }else{
            window.location.href = "/myInfo/toIdentification?backHref=" + backHref;
        }
    });

    // 检测是否是全球购商品 在检测是否绑定手机号
    if (oIDCard.length > 0) {
        if(typeof bindMobile != "undefined" && bindMobile == "bindMobile"){
            // 没有绑定的话 弹出 绑定手机弹框
            if(typeof backHref != "undefined"){
                window.location.href = "/h/login/bindMobile?backHref=" + backHref;
            }else {
                window.location.href = "/h/login/bindMobile";
            }
            return;
        }
    }



    var iDTip = ['为保障顺利清关，请确保收货人姓名和身份证信息保持一致', '格式不符合规定'];
    if (iszhiyou == 1){
        iDTip = ['为保障您的货物顺利清关，请确保收货人姓名和身份证号以及正反面图片真实有效','格式不符合规定'];
    }
    var saveId = false;                     // 判断是否保存的按钮；
    var iDBgStyle = 'background-color:rgba(6,6,6,.6);color:#fff;';  // 弹框背景样式
    setSize();
    function setSize() {
        var oWrap_W = oWrap.width();
        oPhotoListLi.css({
            'height':oWrap_W*0.284,
            'width':oWrap_W*0.448
        })
    }
    //加密
    var encrypt = function Encrypt(word) {
        var strInfo = "0102030405060708";
        var key = CryptoJS.enc.Utf8.parse(strInfo);
        var iv = CryptoJS.enc.Utf8.parse(strInfo);
        var srcs = CryptoJS.enc.Utf8.parse(word);
        var encrypted = CryptoJS.AES.encrypt(srcs, key, {iv: iv, mode: CryptoJS.mode.CBC});
        return encrypted.toString();
    };
    // 身份证之前储存过选中地址就显示  身份证号码
    if(oIdCardNo && oIdCardNo != undefined && oIdCardNo != ''){
        oidIput.hide();
        osaveId.show();
        oGlobalTxt.attr('disabled', true);
        oNoShowImg.hide();
        hideNum(oIdCardNo,oidtxt);
        oGlobalTxt.val(oIdCardNo);
        oIdNo.val(encrypt(oGlobalTxt.val()));
        saveId = true;
    }
    // 身份证正面照
    if(oFirontImage && oFirontImage!= undefined && oFirontImage != ''){
        oUpLoadTip.eq(0).hide();
        oPhotoBox.eq(0).val(oFirontImage);
        oRightImg.eq(0).show();
        oView.eq(0).find('img').attr('src',httpImageUrl+oFirontImage);
        oPreview.eq(0).attr('src',httpImageUrl+oFirontImage);
        oView.eq(0).find('img').css({'opacity':1});
    }
    // 身份证反面照
    if(oBackImage && oBackImage!= undefined && oBackImage != ''){
        oUpLoadTip.eq(1).hide();
        oPhotoBox.eq(1).val(oBackImage);
        oRightImg.eq(1).show();
        oView.eq(1).find('img').attr('src',httpImageUrl+oBackImage);
        oPreview.eq(1).attr('src',httpImageUrl+oBackImage);
        oView.eq(1).find('img').css({'opacity':1})
    }

    if(oGlobalTxt.attr('disabled') != 'disabled'){
        oNoShowImg.show();
    }else{
        oNoShowImg.hide();
    }
    oNoShowImg.on('click',function () {
        myPub.TipLayer('请先填写并保存收货人的身份证信息', iDBgStyle, function () {});
    });
    // 身份证验证
    oGlobalTxt.on('input propertychange', function () {
        // 通过验证输入框内容，修改提示内容
        iDCardNO(oGlobalTxt, function () {
            Testing = false;
            oGlobalTip.html(iDTip[1]);
        }, function () {
            Testing = true;
            oGlobalTip.html(iDTip[0]);
        });

        // 满足条件 保存按钮可点击
        if (oGlobalTxt.val().length === maxLength) {
            Testing ? oGlobalSubmit.addClass('active') : oGlobalSubmit.removeClass('active');
        } else {
            oGlobalSubmit.removeClass('active');
        }

        // 清空按钮显示
        oGlobalTxt.val().length != 0 ? oClearBtn.show() : oClearBtn.hide();
    });



    // 清空按钮操作
    oClearBtn.on('click', function () {
        oGlobalTxt.val('');
        oGlobalSubmit.removeClass('active');
    });


    // 保存操作
    oGlobalSubmit.on('click', function () {
        // 变亮状态
        if ($(this).hasClass('active')) {
            // 防止多次点击
            if (offTap) {
                oGlobalTxt.blur();
                offTap = false;
                // 绑定手机弹框
                if (Testing) {
                    var idCardNo = encrypt(oGlobalTxt.val());
                    G_JSON_GET("/shop/identify", {"name": name, "idCardNo": idCardNo,'addressId':oAddressId}, function (data) {
                        if (data.repsCode == "success") {
                            oIdNo.val(idCardNo);
                            myPub.TipLayerEnd('保存成功', iDBgStyle, function () {
                                oidIput.hide();
                                osaveId.show();
                                oGlobalTxt.attr('disabled', true);
                                oNoShowImg.hide();
                                hideNum(oGlobalTxt.val(),oidtxt);
                                saveId = true;
                            })
                        } else {
                            myPub.TipLayerEnd(data.repsMsg, iDBgStyle, function () {
                                myPub.LayerCloseAll();
                            })
                        }
                    });
                } else {
                    myPub.TipLayerEnd('身份证号不正确，请核对', iDBgStyle, function () {
                        myPub.LayerCloseAll();
                    })
                }
            }
            clearTimeout(moreTapOffTime);
            moreTapOffTime = setTimeout(function () {
                offTap = true;
            }, 500);
        }
    });

    // 点击修改按钮事件
    oGlobalchange.on('click', function () {
        oidIput.show();
        osaveId.hide();
        oGlobalSubmit.removeClass('active');
        oGlobalTxt.val('');
        oClearBtn.hide();
        oGlobalTxt.attr('disabled', false);
        saveId = false;
        oNoShowImg.show();
    });


    /* 身份证号验证*/
    function iDCardNO(obj, fn1, fn2) {
        // var reg = /(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)/g;   // 15或者18位身份验证
       // var reg = /^\d{17}(\d|X|x)$/g;                              // 18位身份验证
        var reg = /(^\d{17}(\d|X|x)$)|(^\d{0,18}$)/g;               // 0到18位数字或者17位数字加x
        if (!reg.test(obj.val())) {
            if (fn1) fn1();
        } else {
            if (fn2) fn2();
        }
    }

    // 这只身份证隐藏
    function hideNum(val,el) {
        var nfirst = val.slice(0, 4);
        var nend = val.slice(-4);
        el.text(nfirst + '**********' + nend);
    }

    // 协议选中操作
    oActiveCheckBox.on('click', function () {
        var index = oActiveCheckBox.index($(this));
        if ($(this).hasClass('active')) {
            oActiveCheckBox.eq(index).removeClass('active');
        }
        else {
            oActiveCheckBox.eq(index).addClass('active');
            if($(this).hasClass('js_global_chioce')){
                buyKnowLayer();
            }
        }
    });

    // 全球购检测
    function globalBuyCheck() {
        // 验证身份证图片是否上传
        var oExist = false;
        var checkCrossBorderId =document.getElementById("checkCrossBorderId").value;//全球购跨境模式 0：非进口；1：海外直邮；2：国内保税仓
        //非进口 不需要校验
        if (checkCrossBorderId == 0){
            return true;
        }
        if (checkCrossBorderId == 3){
            if (isBond != null && isBond != '' && oGlobal_chioce.hasClass('active')){
                return true;
            }else{
                if(isBond == null || isBond == '' || isBond == undefined){
                    myPub.TipLayer('请先认证身份信息', iDBgStyle, function () {
                    });
                    return false;
                }
                else if(!oGlobal_chioce.hasClass('active')){
                    // 提示勾选购买须知按钮
                    chooseTipLayer();

                }
            }
            return false
        }
        // 海外直邮和国内保税仓需要进行校验
        // cc和cc2.0海外直邮需要校验2张图片是否都上传
        IDCardImg = "";//初始化
        if(oPhotoBox.eq(0).val() !== '' && oPhotoBox.eq(1).val() !== '' && oIdExplain.hasClass('active')){
            IDCardImg += $("#IDCardImg1").val()+ ",";
            IDCardImg += $("#IDCardImg2").val();
            $("#idCardImgPath").val(IDCardImg);
            // alert($("#idCardImgPath").val());


            oExist = true;
        }

        // 国内保税仓  设定oExist为true
        if (checkCrossBorderId != 1 && checkCrossBorderId != 4){
            oExist = true;
        }

        if (oGlobalTxt.attr('disabled') == 'disabled' && oGlobal_chioce.hasClass('active') && oExist) {
            // console.log('ok');
            return true;
        }
        else {
            // 检测身份证号是否保存
            if (oGlobalTxt.attr('disabled') !== 'disabled') {
                myPub.TipLayer('请先填写并保存收货人的身份证信息', iDBgStyle, function () {
                    //console.log('未保存')
                });
                return false;
            }
            // 未上传身份证图片
            else if(!oExist){
                if(oPhotoBox.eq(0).val() == '' || oPhotoBox.eq(1).val() == ''){
                    myPub.TipLayer('请上传身份证正反面图片', iDBgStyle, function () {
                        //console.log('未保存')
                    });
                }
                if(!oIdExplain.hasClass('active')){
                    myPub.TipLayer('请勾选跨境信息仅限于大当家平台使用', iDBgStyle, function () {
                        //console.log('未保存')
                    });
                }
                return false;
            }
            // 检测协议是否选中
            else if (!oGlobal_chioce.hasClass('active')) {
                // 提示勾选购买须知按钮
                chooseTipLayer();
            }
        }
    }

    // 提示要勾选购买须知
    function chooseTipLayer(){
        myPub.askLayer('<i>购买全球购商品须同意《用户购买须知》，确认继续下单？</i>', function () {
            oGlobal_chioce.addClass('active');
            myPub.LayerCloseAll();
            oPayment.click();
            // 地址用户名和身份证号校验
            return true;
        }, function () {
            myPub.LayerCloseAll();
        }, 'no', function (){
        },['同意并下单','我再想想']);
    }

    // 购买须知弹窗
    function buyKnowLayer(){
        G_JSON_GET("/shop/pay/toKnow", {"name": "用户购买须知"}, function (data) {
            myPub.TipBtnLayer('<div class="argreeMentInfo">'+data.content+'</div>', '全球购用户须知', '确定', function () {
                myPub.LayerCloseAll();
            },function () {
                myPub.LayerCloseAll();
            },function () {
                $('.layermbox').addClass('buykonw')
            });
        });
    }

    //点击购买须知弹出购买须知内容
    obuyknowDetail.on('click', function () {
        buyKnowLayer();
    });
    exports.globalBuyCheck = globalBuyCheck;
});